注 HornetQ在1.4版本已过期,可以考虑迁移到artemis。
如果在classpath下发现HornetQ,Spring Boot会自动配置ConnectionFactory
。如果需要代理,将会开启一个内嵌的,已经自动配置好的代理(除非显式设置mode属性)。支持的modes有:embedded
(显式声明使用内嵌的代理,如果该代理在classpath下不可用将出错),native
(使用netty
传输协议连接代理)。当后者被配置,Spring Boot配置一个连接到代理的ConnectionFactory
,该代理运行在使用默认配置的本地机器上。
注:如果使用spring-boot-starter-hornetq
,连接到一个已存在的HornetQ实例所需的依赖都会被提供,同时还有用于集成JMS的Spring基础设施。将org.hornetq:hornetq-jms-server
添加到应用中,你就可以使用embedded
模式。
HornetQ配置被spring.hornetq.*
中的外部配置属性所控制,例如,在application.properties
声明以下片段:
spring.hornetq.mode=native
spring.hornetq.host=192.168.1.210
spring.hornetq.port=9876
当内嵌代理时,你可以选择是否启用持久化,并且列表中的目标都应该是可用的。这些可以通过一个以逗号分割的列表来指定一些默认的配置项,或定义org.hornetq.jms.server.config.JMSQueueConfiguration
或org.hornetq.jms.server.config.TopicConfiguration
类型的bean(s)来配置更高级的队列和主题,具体参考HornetQProperties。
没有涉及JNDI查找,目标是通过名字解析的,名字即可以使用HornetQ配置中的name属性,也可以是配置中提供的names。